#pragma once

//#include "Globals.hpp"

// Grid.h is the game screen grid ( tile status, etc )

#include "Globals.hpp"
#include "ClippingPlane.h"
#include "Entity.h"
#include <string>
#include <vector>
#include <list>
using namespace std;

class Grid
{
private:
	vector<vector<list<int>>> mGrid;
	Dimension mGridSize;

public:	
	Grid();
	Grid(const string& filename);

	void AddTile(int h, int w, int ID) {mGrid[h][w].push_back(ID);}
	
	void SaveGrid(const string& filename);
	void LoadGrid(const string& filename);

	vector<vector<list<int>>>& GetGrid() {return mGrid;}

	int Width() {return mGridSize.w;}
	int Height() {return mGridSize.h;}
	void Render();
};
